# 把 sPath目录下的所有内容 => 判断tPath,如果存在,就删除tPath文件夹 => 复制/创建对应路径文件 (按 ignore 规则可以忽略某些文件和文件夹)
import shutil

sPath = r"F:\DataView\Test1"
tPath = r"F:\PyTools\JpgImage"

# 如果目标目录存在就删除
shutil.rmtree(tPath, True)

# 设定忽略复制的规则(sPath为根下的文件夹或者文件都可以,其他的不行)
ignore = shutil.ignore_patterns('.idea', '*.json')

# 开始复制
shutil.copytree(sPath, tPath, symlinks=True, ignore=ignore)

# 1.3文件拷贝示例
# 1.3.1、shutil.copyfileobj() ==> 将文件的内容拷贝到另一个文件(可以指定length拷贝)
# 1.3.2、shutil.copyfile(src, dst) ==> 拷贝文件
# 1.3.3、shutil.copymode(src, dst) ==> 仅拷贝权限，内容、组、用户均不变
# 1.3.4、shutil.copystat(src, dst) ==> 仅拷贝状态的信息，包括：mode bits, atime, mtime, flags
# 1.3.5、shutil.copy(src, dst) ==> 拷贝文件和权限
# 1.3.6、shutil.copy2(src, dst) ==> 拷贝文件和状态信息
# 1.3.7、shutil.copytree(src,det,symlinks=False,ignore=None)==>递归的去拷贝文件
# 1.4 文件、文件夹打包
# 1.4.1shutil.make_archive()方法
# 1.5递归移动文件和删除文件
# 1.5.1、shutil.rmtree(path[, ignore_errors[, onerror]]) ==> 递归的去删除文件
# 1.5.2、shutil.move(src, dst) ==> 递归的去移动文件
# 1.6 压缩和解压
# 1.6.1、zipfile压缩解压缩
# 1.6.2、tarfile压缩解压缩
# ————————————————
# 版权声明：本文为CSDN博主「金鞍少年」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
# 原文链接：https://blog.csdn.net/weixin_42444693/article/details/104475705
